]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/private: Fix texture leak when creating shadow from actor
authorSebastian Keller <skeller@gnome.org>
Thu, 21 Aug 2025 17:45:21 +0000 (19:45 +0200)
committerSebastian Keller <skeller@gnome.org>
Fri, 29 Aug 2025 09:10:36 +0000 (11:10 +0200)
cogl_pipeline_set_layer_texture() adds its own ref to the texture in
_cogl_pipeline_set_layer_texture_data() when called via
_st_create_shadow_pipeline(), so the initial reference is leaked when
the pointer is stolen.

Fix this by not stealing the pointer, so autoptr can unref the texture.
Before the code was changed to autoptr in 71accdd97 the texture was also
manually unrefed after calling _st_create_shadow_pipeline().

Fixes: 71accdd97 ("st: Adapt to CoglObject removal")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3854>

src/st/st-private.c

index 4df1a4504de7c1c07d8a2b70ac67628db2150bc3..78729dd6bb84678404aab234626d6411c9900be4 100644 (file)
@@ -604,7 +604,7 @@ _st_create_shadow_pipeline_from_actor (StShadow            *shadow_spec,
 
       shadow_pipeline = _st_create_shadow_pipeline (shadow_spec,
                                                     paint_context,
-                                                    g_steal_pointer (&buffer),
+                                                    buffer,
                                                     resource_scale);
     }